package com.zp.base.dubbo;

import com.zp.base.api.RemoteSerialNumberUtils;
import com.zp.base.utils.SerialNumberUtils;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.stereotype.Service;

/**
 * @program: zp-backstage
 * @ClassName RemoteSerialNumberUtilsImpl
 * @description:
 * @author: zhangpeng
 * @create: 2023-10-28 16:31
 * @Version 1.0
 **/

@RequiredArgsConstructor
@Service
@DubboService
public class RemoteSerialNumberUtilsImpl implements RemoteSerialNumberUtils {


    /**
     * @throws
     * @description 获取药品入库单据号
     * @author zhp
     * @time 2024/2/28 上午10:59
     */
    @Override
    public String generateDrugImportNo(String orgId, String prefix) {
        return SerialNumberUtils.generateDrugImportNo(orgId, prefix);
    }

    /**
     * 获取药品出库单据号
     *
     * @param orgId
     * @param prefix
     * @return
     */
    @Override
    public String generateDrugExportNo(String orgId, String prefix) {
        return SerialNumberUtils.generateDrugExportNo(orgId, prefix);
    }

    /**
     * @throws
     * @description 获取获取门诊号
     * @author zhp
     * @time 2024/2/28 上午10:59
     */
    @Override
    public String generateClinicNo(String orgId) {
        return SerialNumberUtils.generateClinicNo(orgId);
    }

    /**
     * @throws
     * @description 获取检查号
     * @author zhp
     * @time 2024/2/28 上午10:59
     */
    @Override
    public String generateExamNo(String type, String orgId) {
        return SerialNumberUtils.generateExamNo(type, orgId);
    }

    /**
     * @throws
     * @description 获取检验号
     * @author zhp
     * @time 2024/2/28 上午10:59
     */
    @Override
    public String generateLabNo(String type, String orgId) {
        return SerialNumberUtils.generateLabNo(type, orgId);
    }

    /**
     * @ Author zhangpeng
     * @ Description 获取门诊诊疗项目号
     * @ Date 20:52 2024/3/21
     * @ Param * @param null
     * @ return
     **/
    @Override
    public String generateOutpTreatNo(String orgId) {
        return SerialNumberUtils.generateOutpTreatNo(orgId);
    }


    /**
     * 获取门诊号
     *
     * @param type  住院、门诊类型
     * @param orgId 机构id
     * @return 序号
     */
    @Override
    public String generatePrescriptionNo(String type, String orgId) {
        return SerialNumberUtils.generatePrescriptionNo(type, orgId);
    }

    /**
     * 获取门诊收费号
     *
     * @param orgId
     * @return
     */
    @Override
    public String generateOutpFeesNo(String orgId) {
        return SerialNumberUtils.generateOutpFeesNo(orgId);
    }

    /**
     * 药品盘点序号
     *
     * @param orgId
     * @return
     */
    @Override
    public String generateDrugInventoryNo(String orgId) {
        return SerialNumberUtils.generateDrugInventoryNo(orgId);
    }


    /**
     * 获取住院号
     *
     * @param orgId
     * @return
     */
    @Override
    public String generateHospitalNo(String orgId) {
        return SerialNumberUtils.generateHospitalNo(orgId);
    }

    /**
     * 预交金收款号
     *
     * @param orgId
     * @return
     */
    @Override
    public String generatePrepaymentNo(String orgId) {
        return SerialNumberUtils.generatePrepaymentNo(orgId);
    }
}
